﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using NUnit.Framework;
using Sistema_Totem.Logica.Clases;
using Sistema_Totem.Datos.SqlServer;
namespace Sistema_Totem.Pruebas
{
    /// <summary>
    /// Etiqueta a la clase para casos de prueba.
    /// </summary>
    [TestFixture]
    public class PruebaSqlInvolucrado
    {
        #region Prueba Unitaria Agregar Involucrado
        /// <summary>
        /// Prueba que valida que el Involucrado
        /// se crea correctamente.
        /// </summary>
        [Test]
        public void AgregarInvolucrado()
        {
            // Variables del Rol
            Rol rol = new Rol();
            rol.Nombre = "Tecnico de redes";
            rol.Id = 1;

            // Variables del Involucrado
            int idInvolucrado = 1;
            String nombre = "Nelson";
            String telefono = "04126177102";
            String correo = "Nelson@hotmail.com";

            int retorno = 0;
            // Seteamos en el constructor los valores de prueba
            Involucrado involucrado = new Involucrado(idInvolucrado, nombre, correo, telefono, rol);
            SqlServerInvolucrado serverInvolucrado = new SqlServerInvolucrado();
            retorno = serverInvolucrado.AgregarInvolucrado(involucrado);

            //Assert que comprueba que no hay un campo nulo.
            Assert.IsNotNull(involucrado.Nombre);
            Assert.IsNotNull(involucrado.Correo);
            Assert.IsNotNull(involucrado.Telefono);
            Assert.IsNotNull(involucrado.Rol);

            //Assert que comprueba que se realizo bien la insercion.
            Assert.AreNotEqual(retorno, 0);
        }
        #endregion Prueba Unitaria Agregar Involucrado

        #region Prueba Unitaria Modificar Usuario
        /// <summary>
        /// Prueba que valida que el usuario
        /// se modifica correctamente.
        /// </summary>
        [Test]
        public void ModificarInvolucrado()
        {
            // Variables del Rol
            Rol rol = new Rol();
            rol.Nombre = "Analista";
            rol.Id = 1;

            // Variables del Involucrado
            int idInvolucrado = 1;
            String nombre = "Nelson";
            String telefono = "04126177102";
            String correo = "Nelson@hotmail.com";

            int retorno = 0;
            // Seteamos en el constructor los valores de prueba
            Involucrado involucrado = new Involucrado(idInvolucrado, nombre, correo, telefono, rol);
            SqlServerInvolucrado serverInvolucrado = new SqlServerInvolucrado();
            retorno = serverInvolucrado.ModificarInvolucrado(involucrado);

            //Assert que comprueba que no hay un campo nulo.
            Assert.IsNotNull(involucrado.Nombre);
            Assert.IsNotNull(involucrado.Correo);
            Assert.IsNotNull(involucrado.Telefono);
            Assert.IsNotNull(involucrado.Rol);

            //Assert que comprueba que se realizo bien la Modificacion.
            Assert.AreEqual(retorno, 1);
        }
        #endregion Prueba Unitaria Modificar Involucrado

        #region Prueba Unitaria Consultar Involucrado
        /// <summary>
        /// Prueba que valida que el Involucrado
        /// se consulte correctamente.
        /// </summary>
        [Test]
        public void ConsultarInvolucrado()
        {
            // Variables del Rol
            Rol rol = new Rol();
            rol.Nombre = "Ingeniero de Sistema";
            rol.Id = 4;

            // Variables del Involucrado
            int idInvolucrado = 1;
            String nombre = "Carmen";
            String telefono = "04126177102";
            String correo = "carmen@gmail.com";
            List<Involucrado> listaInvolucrado = new List<Involucrado>();

            // Seteamos en el constructor los valores de prueba
            Involucrado involucrado = new Involucrado(idInvolucrado, nombre, correo, telefono, rol);
            SqlServerInvolucrado serverInvolucrado = new SqlServerInvolucrado();
            listaInvolucrado = serverInvolucrado.ConsultarInvolucrados();

            //Assert que comprueba que no hay un campo nulo.
            Assert.IsNotNull(involucrado.Nombre);
            Assert.IsNotNull(involucrado.Correo);
            Assert.IsNotNull(involucrado.Telefono);
            Assert.IsNotNull(involucrado.Rol);

        
        }
        #endregion Prueba Unitaria Agregar Involucrado
    }
}